import antfu from '@antfu/eslint-config';
import withNuxt from './.nuxt/eslint.config.mjs';

export default withNuxt(
  antfu(
    {
      stylistic: {
        indent: 2, // 缩进风格
        quotes: 'single', // 单引号
        semi: true, // 分号
      },
      typescript: true,
      vue: {
        overrides: {
          // enforce order of component top-level elements 自定义 Vue 文件中标签的顺序，模板 -> 脚本 -> 样式
          'vue/block-order': [
            'error',
            {
              order: ['script', 'template', 'style'],
            },
          ],
          'vue/no-multiple-template-root': ['off'],
          'vue/block-tag-newline': ['error'],
          'vue/html-self-closing': ['off'],
          'vue/singleline-html-element-content-newline': ['off'],
          'prefer-arrow-callback': ['off'],
          'arrow-parens': ['off'],
        },
      },
    }, // 第二部分，应用于所有 TypeScript 文件的规则配置
    {
      files: ['**/*.ts'], // 仅匹配 TypeScript 文件
      rules: {
        'prefer-arrow-callback': ['off'],
        'node/prefer-global/process': ['off'],
        'style/arrow-parens': ['off'],
      },
    },

    // 第三部分，额外的规则配置
    {
      rules: {
        'style/brace-style': 'off',
      },
    },
  ),
);
